#include "myshell.h"

#define SIZE 1024

int main()
{
    char commandstr[SIZE];
    while(true)
    {
        // 0. 初始化操作
        InitGlobal();
        // 1. 输出命令行提示符
        PrintCommandPrompt();
        // 2. 获取用户输入的命令
        if(!GetCommandString(commandstr, SIZE))
            continue;
        // 3. 重定向检测和设置
        // "ls -a -l" -> "ls -a -l"
        // "ls -a -l >log.txt" -> "ls -a -l" filename=XX,redir_type=YY
        CheckRedir(commandstr);
        // 4. "ls -a -l" -> "ls" "-a" "-l"
        // 对命令字符串，进行解析 -> 命令行参数表
        ParseCommandString(commandstr);

        // 5. 检测命令，内键命令，要让shell自己执行！
        if(BuiltInCommandExec())
        {
            continue;
        }

        // 5.执行命令, 让子进程来进行执行
        ForkAndExec();
    }
    return 0;
}